package mdm.com.sap;

import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONArray;
import com.sap.conn.jco.JCoStructure;
import com.sap.conn.jco.JCoTable;

import mdm.com.sap.model.Hu_Info;
import mdm.com.sap.model.Return_Result;

/**
 * 工具类
 * yang chao 
 * @author Administrator
 *
 */
public class SapUtil {

    // 根据SAP结构体封装SAP返回数据
    public static Return_Result GetResult(JCoStructure jcoStructure) {
        Return_Result res = new Return_Result();
        res.setT(jcoStructure.getString("TYPE"));
        res.setID(jcoStructure.getString("ID"));
        res.setNUM(jcoStructure.getString("NUMBER"));
        res.setMESSAGE(jcoStructure.getString("MESSAGE"));
        return res;
    }

    // 根据SAP表结构体封装SAP返回数据
    public static Return_Result GetResult(JCoTable jcoTable) {
        Return_Result res = new Return_Result();
        for (int j = 0; j < jcoTable.getNumRows(); j++) {
            jcoTable.setRow(j);
            res.setT(jcoTable.getString("TYPE"));
            res.setID(jcoTable.getString("ID"));
            res.setNUM(jcoTable.getString("NUMBER"));
            res.setMESSAGE(jcoTable.getString("MESSAGE"));
            break;
        }
        if (res.getT() == null) {
            res.setT("");
        }
        return res;
    }

    /**
     * 长度不够左侧自动补0
     * 
     * @param str
     *            需验证长度，不够则自动填充0的字符串
     * @param strLength
     *            字符长度不足多少位
     * @return
     */
    public static String ForNum(String str, int strLength) {
        if (str != null) {
            int strLen = str.length();
            StringBuffer sb = null;
            while (strLen < strLength) {
                sb = new StringBuffer();
                sb.append("0").append(str);// 左补0
                str = sb.toString();
                strLen = str.length();
            }
        }
        return str;
    }

    /**
     * 获取当天日期
     * 
     * @return
     */
    public static String formatToday() {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        return format.format(new Date());
    }

    /**
     * 获取需要删除的HU号
     * 
     * @param existList
     *            原SAP系统有的HU号
     * @param alllist
     *            APP端所有HU号
     * @return
     */
    public static List<String> toDelHuNo(List<String> existList, List<String> alllist) {
        List<String> list = new ArrayList<String>();
        List<String> existList1 = SapUtil.removeReiteration(existList);
        List<String> alllist1 = SapUtil.removeReiteration(alllist);
        for (String exist : existList1) {
            // 如果系统原有的不存在与APP端所有的
            if (!alllist1.contains(exist)) {
                list.add(exist);
            }
        }
        return list;
    }

    /**
     * 获取需要添加的HU号
     * 
     * @param existList
     *            原SAP系统有的HU号
     * @param alllist
     *            APP端所有HU号
     * @return
     */
    public static List<String> toAddHuNo(List<String> existList, List<String> alllist) {
        List<String> list = new ArrayList<String>();
        List<String> existList1 = SapUtil.removeReiteration(existList);
        List<String> alllist1 = SapUtil.removeReiteration(alllist);
        for (String all : alllist1) {
            // 如果系统原有的不存在与APP端所有的
            if (!existList1.contains(all)) {
                list.add(all);
            }
        }
        return list;
    }
    
    /**
     * 删除重复HU号
     * @param existList
     * @return
     */
    public static List<String> removeReiteration(List<String> existList){
        List<String> list = new ArrayList<String>();
        Map<String, String> map = new HashMap<>();
        for(String  str : existList) {
            if(map.get(str) == null) {
                map.put(str,str);
                list.add(str);
            }
        }
        return list;
    }
    
    /**
     * 删除重复HU号
     * @param existList
     * @return
     */
    public static List<Hu_Info> removeReiterationToInfo(List<Hu_Info> inlist){
        List<Hu_Info> list = new ArrayList<Hu_Info>();
        Map<String, String> map = new HashMap<>();
        for(Hu_Info  info : inlist) {
            if(map.get(info.getExidv()) == null) {
                map.put(info.getExidv(),info.getExidv());
                list.add(info);
            }
        }
        return list;
    }


    /**
     * 获取当天日期时分秒
     * 
     * @return
     */
    public static String formatToTIME() {
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
        return format.format(new Date());
    }

    
    
    /*-----------------------jlq----------------------*/
    /**
     * 获得当前时间
     * 
     * @return
     */
    public static String nowDateString() {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");// 设置日期格式
        return df.format(new Date());// new Date()为获取当前系统时间
    }

    /*
     * String转List<bean>
     */
    public static <T> List<T> stringToList(String str, Class<T> clas) {
        try {
            JSONArray ja = JSONArray.parseArray(str);
            List<T> list = ja.toJavaList(clas);
            return list;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public static List<String> stringToLists(String strs) {
        List<String> list =  new ArrayList<String>();
        String str[] = strs.split(",");
        for(String s : str) {
            list.add(s);
        }
        return list;
    }
    
    

    public static void main(String[] args) {
//        String str = "pda-v1.1-c2-062501.apk";
//        String s[] = str.split("-");
        
       
        System.out.println(String.valueOf(new BigDecimal(50)
                .multiply(new BigDecimal(100))
                .intValue()));
//        List<String> barcode_list = new ArrayList<>();
//        barcode_list.add("6113170103000983");
//        System.out.println(barcode_list);
//        barcode_list.remove("6113170103000983");
//        System.out.println(barcode_list);
//        List<String> list1 = new ArrayList<String>();
//        list1.add("1009457085");
//        list1.add("1009457086");
//        list1.add("1009457081");
//        list1.add("1009457082");
//        list1.add("1009457083");
//        list1.add("1009457084");
//        list1.add("1009457087");
//        list1.add("1009457088");
//        list1.add("1009457089");
//        list1.add("1009457090");
//        list1.add("1009457091");

//        List<String> list2 = new ArrayList<String>();
//         list2.add("1009457085");
//         list2.add("1009457086");
        // list2.add("1009457081");
        // list2.add("1009457082");
        // list2.add("1009457083");
        // list2.add("1009457084");
        // list2.add("1009457087");
        // list2.add("1009457088");
        // list2.add("1009457089");
        // list2.add("1009457090");
        // list2.add("1009457091");
        // list2.add("1009457092");
        // list2.add("1009457093");
//        list2.add("1009457094");

//        System.out.println("添加：" + SapUtil.toAddHuNo(list1, list2));
//        System.out.println("删除：" + SapUtil.toDelHuNo(list1, list2));
//
//        System.out.println(SapUtil.formatToTIME());

        
//        String str = "36B 130A";
//        
//        System.out.println(str.substring(0,4));
//        System.out.println(str.substring(4,8));
    }

}
